(function(){
	var contextHandle={
		menu:null,
		src:null,
		hasRight:false,
		init:function(){
			if(this.menu==null){
				this.menu=$("<div id='_contextMenu_id' class='_contextDiv' callFunc='click:noBubble'/>").appendTo(document.body);
			}
		},
		getSrc:function(){
			return this.src;
		},
		setRight:function(val){
			this.hasRight=val;
		},
		isRight:function(){
			return this.hasRight;
		},
		show:function(param){
			contextHandle.hasRight=true;
			contextHandle.init();
			contextHandle.src=param.src;
			contextHandle.menu.empty().append(param.elem);	
			contextHandle.menu.show();
			contextHandle.menu.css({
				top:event.pageY,
				left:event.pageX
			});
			param=null;
		},
		hide:function(){
			if(contextHandle.menu){
				contextHandle.menu.hide();
				contextHandle.src=null;
			}
		}
	};
	yanhx.addComponent("contextHandle",contextHandle);
	$.fn.menu=function(src){
		yanhx.exec("contextHandle.show",{src:src,elem:$(this)});
	};
	$.menu=function(opt,param){
		return yanhx.exec("contextHandle."+opt,param);
	};
})();